- Softwaretechnik
- Softwaretechnik['sɔftweə-], Softwaretechnologie, Software-Engineering [-endʒɪ'nɪərɪȖ, englisch] das, -, Teilgebiet der Informatik, das sich mit Methoden und Werkzeugen für das ingenieurmäßige Entwerfen, Herstellen und Implementieren von Software befasst. Das »Software-Engineering« entstand Ende der 1960er-Jahre als Antwort auf die Softwarekrise; es sollte einen Umdenkprozess in der Softwareproduktion einleiten, Bewertungskriterien stärker berücksichtigen und zu qualitativ hochwertigen Softwareprodukten führen. Als deren Qualitätskriterien gelten insbesondere: Benutzerfreundlichkeit, Zuverlässigkeit, Wartbarkeit, Anpassbarkeit an Änderungen der Aufgabenstellung, Portabilität, Effizienz, Ergonomie (Softwareergonomie).Softwaretechnik wird heute fast ausschließlich mithilfe spezieller Softwarewerkzeuge durchgeführt; man spricht dann von CASE-Tools (CASE, Abkürzung für englisch computer-aided software engineering). Die speziellen Methoden der Softwaretechnik hängen von den grundlegenden Prinzipien der Programmentwicklung ab, wie strukturierte Programmierung oder objektorientierte Programmierung (Objektorientierung). Die Vorgehensmodelle der Softwaretechnik umfassen alle Phasen von der Problemstellung bis zur endgültigen Ausmusterung eines Programms oder Programmsystems (Softwarelebenszyklus). Für Programme mittlerer Komplexität (bis zu einer Länge von etwa 20 000 Zeilen) hat sich ein Phasenmodell mit folgenden (linear aufeinander folgenden) Phasen als zweckmäßig erwiesen: 1) Problemanalyse, 2) Softwareentwurf, 3) Implementierung, 4) Funktionsüberprüfung (Test und Verifikation), 5) Leistungsüberprüfung, 6) Installation und Abnahme, 7) Wartung. Problemanalyse und Softwareentwurf sind Gegenstand der Systemanalyse. Als Resultat der Problemanalyse, die v. a. Istanalyse, Sollkonzeptentwicklung, Durchführbarkeitsstudie und Projektplanung umfasst, wird eine Anforderungsdefinition (Pflichtenheft) erstellt, die als verbindliches (standardisiertes) Dokument die Grundlage für den zwischen Auftraggeber und Softwarehersteller abzuschließenden Vertrag bildet. Mit dem Softwareentwurf wird das geplante komplexe Gesamtsystem modellhaft dargestellt, wobei es in voneinander unabhängige und überschaubare Komponenten (Modul) zerlegt wird. Die Modularisierung ist meist hierarchisch; zu ihrer Durchführung (und ebenfalls für die spätere Implementierung) gibt es im Wesentlichen zwei Methoden: die Top-down-Methode und/oder die Bottom-up-Methode. Der Entwurf wird als Spezifikation festgehalten, die u. a. Funktion und Schnittstellen jedes Moduls sowie einen Überblick über die Abhängigkeit der einzelnen Module voneinander enthält. Bedingt durch die Entwicklung objektorientierter Programmiersprachen setzten sich in den letzten Jahren verstärkt objektorientierte Methoden des Softwareentwurfes durch, die oft auch angepasste Vorgehensmodelle bedingen, die keine starre lineare Phasenabfolge aufweisen. - Diese Phaseneinteilung kommt auch bei den meisten anderen Methoden in ähnlicher Form vor, mit Qualitätskontrollen an den Phasenübergängen.Softwareprodukte mit mehr als etwa 100 000 Programmzeilen erfordern zusätzliche und andersartige Methoden, u. a. weil die Spezifikation mit dem Softwareumfang immer unübersichtlicher wird; für solche Fälle müssen leistungsstarke Softwarewerkzeuge vorhanden sein. Ein weiteres wichtiges Prinzip der Softwaretechnik ist die ausführliche und lückenlose Dokumentation von Verlauf und Ergebnissen aller Phasen.H. Balzert: Die Entwicklung von Software-Systemen. Prinzipien, Methoden, Sprachen, Werkzeuge (1982, Nachdr. 1994);G. Booch: Objektorientierte Analyse u. Design (a. d. Engl., 1994);S. Schäfer: Objektorientierte Entwurfsmethoden. Verfahren zum objektorientierten Softwareentwurf im Überblick (1994);G. Bauer: Bausteinbasierte Software. Eine Einf. in moderne Konzepte des Software-Engineering (2000);D. S. Koreimann: Grundlagen der Software-Entwicklung (32000);R. J. Leach: Introduction to software engineering (Boca Raton, Fla., 2000);
Universal-Lexikon. 2012.